/*
 * 版权所有 (c) 2022-2099 TBIT。保留所有权利。
 */

package com.tbit.main.constant;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 分布式锁 @interface
 *
 * @author yao
 * @version 4.0.0
 * @since 2024/5/11 10:14
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface DistributedLock {

    /**
     * @return 分布式锁的 key，默认 token + 类名 + 方法名
     */
    String value() default "";

    /**
     * @return 锁的默认超时时间 30s
     */
    long timeout() default 30;

    /**
     * 提示信息，正在执行中的提示
     */
    String message() default "System.repeated.request";

}
